import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import eslint from 'vite-plugin-eslint';

// https://vite.dev/config/
export default defineConfig({
  server: {
    host: '127.0.0.1',
    port: 7001,
    cors: true,
    proxy: {},
  },
  build: {
    outDir: 'dist',
    assetsDir: 'assets', // 指定生成静态资源的存放路径（相对于outDir）
    assetsInlineLimit: 4096, // 小于此阈值的导入或引用资源将内联为 base64 编码
    minify: 'esbuild', // 指定使用哪种混淆器（'terser' | 'esbuild'）
    sourcemap: false, // 构建后是否生成 source map 文件
    // 自定义底层的 Rollup 打包配置
    rollupOptions: {
      output: {
        manualChunks: id => {
          if (id.includes('node_modules')) {
            return 'vendor';
          }
        },
      },
    },
  },
  plugins: [
    vue(),
    eslint({
      include: ['src/**/*.vue', 'src/*.vue', 'src/**/*.ts', 'src/*.ts', 'src/**/*.js', 'src/*.js'],
      exclude: ['node_modules', 'dist'],
    }),
  ],
  resolve: {
    alias: {
      '@': '/src',
    },
    extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx'],
  },
  envDir: './env',
  envPrefix: 'VITE_',
});
